package training.list;

/**
 * <b>链表中的节点每k个一组翻转</b><br/>
 *
 * 描述<br/>
 * 将给出的链表中的节点每 k 个一组翻转，返回翻转后的链表如果链表中的节点数不是 k 的倍数，将最后剩下的节点保持原样你不能更改节点中的值，只能更改节点本身。
 * <br/>
 * 数据范围：  0≤n≤2000 ， 1≤k≤2000 ，<br/>
 * 链表中每个元素都满足 0≤val≤1000
 * 要求空间复杂度 O(1)，时间复杂度 O(n) <br/>
 * 例如：<br/>
 * 给定的链表是 1→2→3→4→5 <br/>
 * 对于 k=2,
 * 你应该返回 2→1→4→3→5 <br/>
 * 对于 k=3 ,
 * 你应该返回 3→2→1→4→5
 *
 * */
public interface ReverseKGroup {

    public ListNode reverseKGroup (ListNode head, int k);
}
